/*
 * <h3>Title:wheel-parent系统</h3>
 * <p>Copyright (c) 2020, wnfbx@163.com. All rights reserved.</p>
 * @author wnfbx@163.com
 */
package com.wheel.autoconfigure.dynamicdatasource.processor;

import com.wheel.autoconfigure.dynamicdatasource.annotation.DynamicDataSourceKey;
import com.wheel.autoconfigure.dynamicdatasource.loadbalancer.DataSourceLoadBalancer;

import java.util.List;

/**
 * <dt>Description:DynamicDataSourceDetermineProcessor</dt>
 * <dd>数据源具体选择处理</dd>
 *
 * @author wnfbx@163.com
 * @version 1.0 <i>2020/1/9 16:03</i>
 * @since jdk1.7+
 */
public interface DynamicDataSourceDetermineProcessor {

    /**
     * <dt>Description:process</dt>
     * <dd>根据不同数据源处理方式处理</dd>
     * <dd>author: wnfbx@163.com</dd>
     * <dd>version:1.0 <i>2020/1/9 16:04</i></dd>
     *
     * @return java.lang.String
     * @since jdk1.7+
     */
    String process(DynamicDataSourceKey dynamicDataSourceKey);

    void setJTA(boolean JTA);

    void setBalancer(DataSourceLoadBalancer masterBalancer, DataSourceLoadBalancer slaveBalancer);

    void setDataSourceKeys(List<String> masterKeys, List<String> slaveKeys);
}
